﻿<?xml version="1.0"?>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!--定义日志的输出媒介，下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
  <root>
    <level value="ALL" />
    <appender-ref ref="LogFileAppender" />
    <!--<appender-ref ref="ConsoleAppender" />
            <appender-ref ref="EventLogAppender" />
            <appender-ref ref="RollingLogFileAppender" />-->
  </root>
    
  <logger name="NHibernate" additivity="false">
    <level value="OFF" />
    <appender-ref ref="RollingLogFileAppender" />
  </logger>
    
  <logger name="NHibernate.SQL" additivity="false">
    <level value="ALL" />
    <appender-ref ref="RollingLogFileAppender" />
  </logger>
    
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
    <!--日志位置-->
    <file value="logs\log.txt" />
    <layout type="log4net.Layout.PatternLayout">
      <!--每条日志末尾的文字说明-->
      <footer value="[Footer]--Test By Lucky.zeng" />
      <!--输出格式
                     每种转换符号都以%开始，后面跟着一个格式符号和换符号。
                     %-数字　     :该项的最小长度，小于最小长度的用空格填充
                     %m(message)  :输出的日志消息
                     %n(new line) :换行 
                     %d(datetime) :输出当前语句运行的时刻 
                     %r(run time) :输出程序从运行到执行到当前语句时消耗的毫秒数 
                     %t(thread id):当前语句所在的线程ID 
                     %p(priority) : 日志的当前优先级别，即DEBUG、INFO、WARN…等 
                     %c(class)    :当前日志对象的名称，
                     %L(line )    :输出语句所在的行号 
                     %F(file name)：输出语句所在的文件名
                     %logger　日志名称
                 -->
      <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    </layout>
  </appender>
  <!--定义输出到控制台命令行中-->
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <!--conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /-->
      <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    </layout>
  </appender>
  <!--定义输出到windows事件中-->
  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
  <!--RollingFileAppender是输出源也是输出到文件中，只是以自增长的方式-->
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="logs/system_log_"/>
    <!--是否覆盖-->
    <param name="AppendToFile" value="true"/>
    <!--设置无限备份=-1 ，最大备份数为1000-->
    <param name="MaxSizeRollBackups" value="100"/>
    <!--每个文件的最大20k-->
    <param name="MaximumFileSize" value="1KB"/>
    <!--名称是否可以更改 为false为可以更改-->
    <param name="StaticLogFileName" value="false"/>
    <!--文件名称-->
    <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;"/>
    <param name="RollingStyle" value="Date"/>
    <layout type="log4net.Layout.PatternLayout">
      <!--conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %SysMessage%newline" /-->
      <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    </layout>
  </appender>
</log4net>